package common

import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/schema"
	"net/url"
)

func InitMysql() *gorm.DB {
	mysqlCfg := Get().MySQL
	dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=%s&parseTime=True&loc=%s",
		mysqlCfg.User,
		mysqlCfg.Pass,
		mysqlCfg.Addr,
		mysqlCfg.Name,
		mysqlCfg.Charset,
		url.QueryEscape(mysqlCfg.Loc),
	)
	fmt.Printf("************* dsn: %v", dsn)
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
		NamingStrategy: schema.NamingStrategy{
			SingularTable: true,
		},
	})
	// 设置数据库表为单数
	//db.SingularTable = true // v1 版本
	if err != nil {
		panic(err)
	}
	return db
}
